import React, { useState, useEffect } from 'react'; import reactLogo from './assets/react.svg'; import Icon from './components/Icon'; import Input from './components/Input'; import Button from './components/Button'; const App: React.FC = () => { const [rectCount, setRectCount] = useState(5); const [nodeCount, setNodeCount] = useState(0); const styles = { container: { display: 'flex', alignItems: 'center', justifyContent: 'center', height: '100%', width: '100%', flexDirection: 'column' as const, }, banner: { display: 'flex', alignItems: 'center', gap: '18px', marginBottom: '16px', }, nodeCount: { fontSize: '11px', }, field: { display: 'flex', gap: 'var(--spacer-2)', height: 'var(--spacer-5)', alignItems: 'center', }, createRectanglesInput: { width: '40px', }, }; const createRectangles = (count: number) => { window.parent.postMessage( { pluginMessage: { type: 'CREATE_RECTANGLES', count, }, }, '*', ); }; useEffect(() => { const handleMessage = (event: MessageEvent) => { const message = event.data.pluginMessage; if (message?.type === 'POST_NODE_COUNT') { setNodeCount(message.count); } }; window.addEventListener('message', handleMessage); return () => { window.removeEventListener('message', handleMessage); }; }, []); return (
Svelte logo
setRectCount(Number(value))} style={styles.createRectanglesInput} />
{nodeCount} nodes selected
); }; export default App;